import { Directive } from "vue";

export const buttonPermissions: Directive<HTMLInputElement, any> = (
  el,
  binding
) => {
  // 这会在 `mounted` 和 `updated` 时都调用
  // 获取自定义指令内容
  const buttonKey = binding.value;

  if (buttonKey) {
    const key = checkKey(buttonKey);

    if (!key) {
      el.remove();
    }
  }
};

const checkKey = (key: string) => {
  // 获取权限数组
  const permissionBtnArr = JSON.parse(
    sessionStorage.getItem("permissionBtnArr")!
  );

  // 如果传入的元素key不在权限数组里，则不可显示
  const permissionData = permissionBtnArr || [];
  const index = permissionData.indexOf(key);
  return index > -1;
};
